package MapDemo;

import java.util.HashMap;
import java.util.Set;

public class MapTest {
    /**
     * 1）定义一个类MapTest；
     * 2）在这个类中main函数中定义一个字符串对象s=”sjfljslkdf”；
     * 3）创建一个HashMap集合对象map，返回值类型是接口Map，key和value的数据类型是Charactor和Integer；
     * 4）使用for循环遍历字符串对象s；
     * 5）使用字符串对象s调用String类中charAt()函数获取字符串中的每个字符数据，并赋值给一个变量ch，数据类型是char；
     * 6）使用判断结构判断当前获取的字符作为key在Map集合中是否存在，如果第一次出现，则使用Map的对象map调用put函数向集合中添加数据，变量ch作为key,数字1作为value；
     * 7）如果取出的数据在集合key中，说明以前获取过，可以使用map对象调用get函数根据key即变量ch获取Map集合的value也就是某个字符出现的次数赋值给变量count；
     * 8）使用map对象调用put函数向Map集合中添加数据，ch作为key，count+1作为value；
     * 9）根据集合对象map调用keySet函数获取key的集合Set，Charactor作为Set集合的泛型；
     * 10）迭代Set集合，Charactor作为迭代器类Iterator的泛型；
     * 11）获取key，根据key获取value,输出key和value；
     */
    public static void main(String[] args) {
        String s1 = "sjfljslkdfk";
        HashMap<Character, Integer> map = new HashMap<Character, Integer>();
        for (int i = 0; i < s1.length(); i++) {
            char ch = s1.charAt(i);
            if (map.containsKey(ch)) {
                int cont = map.get(ch);
                map.put(ch, cont + 1);
            } else {
                map.put(ch, 1);
            }
        }
        System.out.println(map);
        Set<Character> keys = map.keySet();
        for (Character key : keys) {
            Integer value = map.get(key);
            System.out.println("字符"+key+"出现的次数是："+value);
        }
    }
}
